Teamprojekt Softwareentwicklung

(Bachelor Projekt)

Agile Software Engineering Project


Sprecher: Ragnar Mogk

Teamprojekt Softwareentwicklung

  • 5er Teams + 1 Teambegleitung + 1 Auftraggeber:innen

  • ~5 Begleitvorlesungen

  • Team- und Vortragstraining

  • Funktionierende Software!

  • Qualitätssicherung!

  • Projektdokumentation und -präsentation

Vorwarnungen

  • Dieses Projekt ist deutlich aufwendiger als andere Lehrveranstaltungen.

  • Versucht nicht, zu viele CP zusammen mit dem TPSE zu belegen.

  • Unterschätzt nicht die Zeit, die man braucht, um sich mit neuer Technik vertraut zu machen.

Softwareentwicklung im Team?

Mitmachspiel zum Wachwerden

  • Ich stelle Fragen.

  • Hebt den Arm, solange ihr mit "Ja" antwortet.

  • Senkt den Arm, wenn die Frage nicht mehr zutrifft.

Wer von euch …

hat die Anweisungen verstanden?

Wer von euch …

hat schon mal Software entwickelt?

Wer von euch …

hat schon mal Software entwickelt

im Team?

Wer von euch …

hat schon mal Software entwickelt

außerhalb einer „Übungsaufgabe“?

Wer von euch …

hat schon mal Software entwickelt

für eine Auftraggeber:in?

Wer von euch hat schon mal …

einen solchen Prozess organisiert?

Worum geht es bei

Softwareentwicklung im Team?

Kommunikation

Kommunikation

  • Teammitglieder

  • Teambegleitung

  • Auftraggeber:innen

  • Nutzer:innen

  • Kursorga

  • Meetings / Emails

  • Spezifikation / Dokumentation

  • Code Reviews / Kommentare

  • Tickets / User Stories

  • Code

Vorstellung 👋

Kontext ist entscheidend für erfolgreiche Kommunikation

Zeitplan

  • jetzt: Teamfindung

  • bis Montag Morgen: Auftragswahl

    • Aufträge sind bald™ im Moodle verlinkt

  • ab Montag: erste Teamtrainings

    • tragt euch möglichst sofort als 5er Team im Moodle ein (vor der Auftragswahl)

  • in 1-3 Wochen: Projektstart

    • erstes Treffen mit Auftraggeber:in und Teambegleitung

  • kommende 4 Wochen: Begleitvorlesungen (dieser Raum diese Zeit)

Teamfindung

Kennenlernen

Klärt eure Erwartungen und kommuniziert sie:

  • Projekttyp: Webanwendung, Konsolenprogramm, …

  • Technologien: Programmiersprachen, Tools

  • Anspruch: Bestnote, Aufwand

  • Verfügbarkeit: Teilzeitstudium, …

  • Arbeitsweise: Pair-Programming, regelmäßige Meetings

  • Teilnahme: Präsenz oder remote

  • Arbeitszeiten: Habt ihr gemeinsame Slots zum Arbeiten?

  • Vorerfahrungen

  • Trefft euch vor der Deadline und besprecht alle Punkte!

Macht mal was als Team gemeinsam

  • Brettspiele, Bowling, Minigolf, Kochen, ...

Team Training

Bartosz Kajdas

KLICK MICH AN

Kommunikation

  • Jour Fixe: Regelmäßiges festes Meeting

    • 1x pro Iteration (2 Wochen)

    • mit der Gruppe, mit dem AG

  • Projektmanagement:

    • Issue/Anforderungen verwalten (Gitlab, Github, Trello, Jenkins, …)

    • Code Reviews

  • Pair-Programming, Group-Programming, ...

  • Weiter Kommunikation euch überlassen:

    • Calls, Instant Messenger, sonstige Software, …

Jour Fixe

  • fester Slot

  • offene Punkte ansprechen

  • bereitet euch auf AG Meetings vor!

  • wählt eventuell einen „Teamkontakt“

  • -> längere (technische) Diskussion in eigenen Meetings

Zeitmanagement

  • Regelmäßiges Arbeiten

  • Findet Wege euch zu Motivieren

    • Häufigeres gemeinsames Arbeiten

    • Macht mal was in der Freizeit

  • Arbeitet auf die Projektziele hin

    • Plant Aufgaben pro Iteration

    • Plant genug Puffer für Probleme

  • Teilt euch die Zeit ein zwischen:

    • Projektorganisation (Planung, Doku, Prozesse, Tooling, …)

    • Entwicklung (Spezifische Tasks, Softwarequalität, …)

Konflikte

  • Konflikte sind normal

  • Bereitet euch darauf vor

  • Geht professionell damit um

Konflikte managen

  • Vermeidet Schuldzuweisungen

  • Identifiziert Probleme und Ursachen

  • Passt eure Prozesse an, um Ursachen zu vermeiden

  • Seid kompromissbereit und lösungsorientiert

  • Kommuniziert und setzt klare Grenzen

Konfliktverwaltungsstrategien

(wenn nötig)

  • Festlegung von Rollen und Verantwortlichkeiten

    • Dokumentiert eure Arbeitszeiten

    • Dokumentiert eure Beiträge

  • Offene Kommunikation bei Uneinigkeiten

    • Ziel: Gemeinsame Lösungen finden

    • Vermeidung von schlechten Kompromissen

  • Fokussierung auf die Erreichung der Projektziele trotz Konflikten

  • Teambegleitung bietet Unterstützung

Problembeispiele

„Ein Teammitglied trägt nur wenig bei“

  • Erwartung: 270h pro Person, 12h pro Woche (SEP: 2 Tage pro Woche)

  • Frühzeitig im Team ansprechen:

    • „Wir finden, dass du dich zu wenig an der Projektarbeit beteiligst, und wollen nicht, dass das einen negativen Einfluss auf unser Projektergebnis hat.”

  • Warum wird wenig beigetragen?

    • Zu wenig Zeit im Semester?

    • Nicht in de Projektarbeit integriert?

    • Machen die anderen immer alles alleine?

„Ich habe das Gefühl, alle Arbeit bleibt an mir hängen.”

  • Eigene Erwartungen und die des Teams mal ansprechen

  • Aufgaben zuweisen

  • Dokumentiert Arbeitszeiten und Beiträge

  • Bittet TBs um Hilfe

„Mit meinem Vorwissen kann ich die Aufgabe nicht bearbeiten.”

  • Pair-Programming

  • Gemeinsame Weiterbildung

  • Kommuniziert mit TBs und AGs.

„Es liegen inkonsistente Requirements vor.”

  • Mit TB und AG kommunizieren

„Die Aufgabe ist mit den gegebenen Ressourcen nicht realisierbar.”

  • Mit AG kommunizieren

„Meine Teamkollegen geben mir Anweisungen”

  • Zur Klarstellung:

    • Es gibt keine Projektleitung

    • Es wird auch nicht per Mehrheit entschieden

  • Entscheidungen sollen Einstimmig sein

  • Diskutiert Lösungen

  • Vermeidet schlechte Kompromisse

  • Kommuniziert mit den TBs

  • Bei Priorisierungsfragen kontaktiert die AGs.

Erwartungen

(von uns an euch)

Regelmäßige Teilnahme am Prozess

Zeitaufwand

  • 9CP = 270h (SEP: 12CP = 360h)

  • Projektarbeit, Meetings, Dokumentation, Präsentationen, Vorlesungen, …

  • 10 Iterationen à 2 Wochen mit 3 Tagen pro Iteration = 240h

Projektmanagement Bestandteile

  • Projektspezifikation (zu Beginn)

    • „Vertrag“ zwischen euch und AG was getan werden soll

    • Klärt Randbedingungen wie Abgabeformat und Lizenzen

  • Qualitätssicherung

    • Projektdatenmanagement (e.g., git, issue tracker, …)

    • Code Reviews

    • Tests

    • Pair-Programming

  • Projektdokumentation (kontinuierlich, Abgabe am Ende)

    • Prozesse?

    • Qualitätssicherung durchgeführt?

  • Details in eigenen Vorlesungen und durch Teambegleitungen

Eigenwerbung

Agile Software Engineering Project

  • Selbe Begleitvorlesung, anderes Rahmenprogramm

  • Mehr CP, mehr Aufwand

  • Selektiver Prozess

    • -> auch fürs TPSE registrieren!

  • Projektmesse: Mittwoch 15:00, in Zoom

Fragen?

  • Todos für euch:

  • Findet euch in 5er Teams zusammen.

  • Schaut euch die Projekte an.

  • Behaltet das Moodle bezüglich Anweisungen zur Anmeldung im Auge

  • Deadline Montag Morgen